package com.avast.personalbudgetapp.model.service;

import java.io.IOException;
import java.util.List;

import org.apache.http.client.ClientProtocolException;

import com.avast.personalbudgetapp.model.bean.Proto.AccountDelta;
import com.avast.personalbudgetapp.model.bean.Proto.Transaction;

/**
 * BudgetApp Service Interface
 * 
 * @author hallac
 *
 */
public interface BudgetAppService {
	
	public void insertOrUpdate(Transaction transaction); //add or edit transaction
	public void removeTransaction(String guid); //remove transaction
	public List<Transaction> getDirtyTransactions(); //show transactions
	public Double getBalance(); //Show current account balance	
	public Long getTimestampOfLastSuccessfulSync();
	public void setTimestampOfLastSuccessfulSync(Long timestamp);
	public void markAllTransactionsClean();	
	public void syncData();
	public AccountDelta sendAccountDeltaToServer(AccountDelta accountDelta) throws ClientProtocolException, IOException;	

}
